package com.utils;

import com.framework.view.TreeView;
import com.model.TChina;
import com.model.TSysOrg;

import java.util.List;
import java.util.Map;

/**
 * 机构工具类
 * @author daniel
 *
 */
public class TreeUtiles{
	
	
		
	/**
	 * 获取父级节点
	 * @param orgId
	 * @return
	 */
	@Deprecated
	public static TreeView findParent(List<TreeView> list,Long orgId){
		
				
		return null;
	}
	
	/**
	 * 获取子类节点
	 * @param orgId
	 * @return
	 */
	public static TreeView findChildren(List<TreeView> list,Long orgId){
		
				
		return null;
	}
	/**
	 * 获取组织架构下面的全部子架构包括孙子...等等
	 * @param id
	 * @param children 全部子架构
	 * @param list 所有组织架构
	 */
	public static void getOrgChildren(Long id, Map<String,TSysOrg> children, List list){
		for(int i=0;i<list.size();i++){
			TSysOrg node=(TSysOrg)list.get(i);
			if(node!=null&&node.getParentOrgId().longValue()==id.longValue()){//如果是子节点
				if(!children.containsKey(node.getId().toString())) {//如果还没有纳入子节点
					children.put(node.getId().toString(),node);//纳入子节点
					getOrgChildren(node.getId(),children,list);//检查子节点的子节点
				}
			}
		}
	}

	/**
	 * 获取组织架构下面的全部子架构包括孙子...等等
	 * @param id
	 * @param childrenList 全部子架构
	 * @param list 所有组织架构
	 */
	public static void getChildrenOrg(Long id,List childrenList,List list){
		for(int i=0;i<list.size();i++){
			TSysOrg node=(TSysOrg)list.get(i);
			if(!childrenList.contains(node)) {//如果还没有纳入子节点
				if(node!=null&&node.getParentOrgId().toString().equals(id.toString())){//如果是子节点
					childrenList.add(node);//纳入子节点
					getChildrenOrg(node.getId(),childrenList,list);//检查子节点的子节点
				}
			}
		}
	}

	/**
	 * 获取区域下面的子集
	 * @param id
	 * @param childrenList 全部子架构
	 * @param list 所有组织架构
	 */
	public static void getChildrenArea(Long id,List childrenList,List list){
		for(int i=0;i<list.size();i++){
			TChina node=(TChina)list.get(i);
			if(!childrenList.contains(node)) {//如果还没有纳入子节点
				if(node!=null&&node.getPid().toString().equals(id.toString())){//如果是子节点
					childrenList.add(node);//纳入子节点
					getChildrenArea(node.getId(),childrenList,list);//检查子节点的子节点
				}
			}
		}
	}
	
} 
